[アップデート] EC2 Image Builder で 起動テンプレートを作成・更新できるようになりました!
ちゃだいん(@chazuke4649)です。
EC2 Image Builder で 起動テンプレートを作成・更新できるようになりました!
EC2 Image Builder が Auto Scaling 起動テンプレートをサポート
何が嬉しい?
今までは Image Builder のイメージ配布フェーズで、起動テンプレートを選ぶことはできませんでした。今回のアップデートで起動テンプレートをサポートしたので、EC2 AutoScaling のワークロードで起動テンプレートを使用している場合、今まで手作業などで更新していた起動テンプレートの新しいバージョンを、Image Builderで自動的にアップデートできるようになりました。
あとはAutoScaling側で「インスタンスの更新」を行えば、Image Builderで作成した最新のAMIに本番インスタンスを簡単に置き換えることができます。
やってみる
Configure AMI distribution settings to use an Amazon EC2 launch template - EC2 Image Builder
上記公式ドキュメントに従って進行します。 尚、既存リソースを使用して、アップデート箇所のみ確認するため、以下工程の(スキップ)箇所はスキップして進めます。
- イメージパイプラインの作成 ←ここ
- イメージレシピの作成(スキップ)
- インフラストラクチャ設定の作成(スキップ)
- 配布設定の作成 ←ここ
- 起動テンプレートの作成(スキップ)
- パイプラインの実行 ←ここ
1.イメージパイプラインの作成
まずはImage Builderコンソールを開き、[イメージパイプラインの作成]を行います。
パイプライン名をtest-image-pipeline
とし、Build ScheduleはManualを選択します。
その後、[イメージレシピの作成]と、[インフラストラクチャ設定の作成]は、作成済みの既存リソースを使用するためスキップします。
2.配布設定の作成
メインの配布設定を行います。
まずは[Create new destribution settings]を選択し、名前はtest-ib-distribution-config
とします。
次のセクションがメインとなる[Region settings]です。
- Region: 東京リージョン(デフォルトのまま)
- Target accounts: 現在使用しているAWSアカウントを入力
- Output AMI name:
test-ami-iblt
と入力
新しく追加された[Launch template name]の項目を展開し、入力します。
- Launch tenplate name: 作成済みの既存リソース
blog-prd-lc2
を選択 - [Set the default version]をチェック
以下理由により最新の起動テンプレートをデフォルトバージョンに指定しておく方が良さそうです。
バージョンを指定しない場合は、デフォルトバージョンが使用されます。いずれかの起動テンプレートをデフォルトバージョンとして設定できます — デフォルトでは、起動テンプレートの最初のバージョンです。 引用元)起動テンプレートからのインスタンスの起動 - Amazon Elastic Compute Cloud
以上で、設定は完了です。
3.パイプラインの実行
[Run Pipeline]を実行すると、処理が開始されステータスが[Pending]になりました。
少し待って画面をリフレッシュすると、無事パイプラインのタスクが完了し、ステータスが[Available]に更新されました。(※実際は1度手違いで失敗しているので、下図はVersion1.0.0/3
になっています)
]
作成されたイメージの詳細画面を見ると、AMIIDがami-01b3e959a21495a1c
で、名前がtest-ami-iblt...
のイメージが作成されていることがわかります。
最後に、起動テンプレートのコンソールから確認すると、起動テンプレートblog-prd-lc2
にAMIIDが[ami-01b3e959a21495a1c]でバージョン2が追加されていることが確認できました。
説明にもImage Builderによって作られたと記載がありますね。
検証は以上です。
終わりに
今回のアップデートにより、AutoScalingユーザーのImage Builderを使ったAMI更新の自動化が強化され、手作業などの工数を減らすことができるようになりました。やったね!
それではこの辺で。ちゃだいん(@chazuke4649)でした。